CSCIĀ 0076A. Game Programming

Units: 3
Prerequisite: Completion of CSCI 12 with grade of "C" or better
Advisory: Completion with grade of "C" or better or concurrent enrollment in CSCI 13
Hours: 72 (54 lecture, 18 laboratory)
Explore the algorithms, data structure, and techniques used to program computer video games. Emphasis on arcade-style video games (new and classic) written in Java. Topics include 2D animation, sprites, interaction, music, and sound. Underlying issues include graphical user interface programming, multi-threaded applications, realtime programming, use of sophisticated APIs, and societal impacts of computer gaming. (CSU, UC)

CSCI 0076A - Game Programming

http://catalog.sierracollege.edu/course-outlines/csci-0076a/

Catalog Description DESCRIPTION IS HERE: Prerequisite: Completion of CSCI 12 with grade of "C" or better Advisory: Completion with grade of "C" or better or concurrent enrollment in CSCI 13 Hours: 72 (54 lecture, 18 laboratory) Description: Explore the algorithms, data structure, and techniques used to program computer video games. Emphasis on arcade-style video games (new and classic) written in Java. Topics include 2D animation, sprites, interaction, music, and sound. Underlying issues include graphical user interface programming, multi-threaded applications, realtime programming, use of sophisticated APIs, and societal impacts of computer gaming. (CSU, UC) Units 3 Lecture-Discussion 54 Laboratory 18 By Arrangement Contact Hours 72 Outside of Class Hours Course Student Learning Outcomes Explain and apply basic 2D game concepts including the game engine, playing fields, sprites and events. Explain and apply the game engine's update/render/draw loop and how this loop is utilized to implement a game. Apply the basic 2D game concepts to design and implement a 2D game. Course Content Outline I. Review of Java A. Basic Data Structures B. Basic Algorithms C. Object-Oriented Techniques i. Inheritance ii. Interfaces iii. Design Patterns II. Basic 2D Games A. Java Graphics i. Drawing ii. Animation iii. Interaction iv. Undecorated Windows v. Full-screen Exclusive B. Sprites/Objects C. Game Design Specification D. Collision Detection E. Simulated Physics III. Advanced 2D Games A. Common Game Styles i. Arcade Action ii. Side Scroller iii. Tile Games iv. Solitaire B. Sounds i. Playing sounds concurrently ii. Background music C. Advanced Graphics D. Smart Monsters IV. Social Issues A. Gender Differences B. Age Differences C. Societal Impact D. Ethics Course Objectives Course Objectives Lecture Objectives: 1. Design a storyboard for a computer game. 2. Design and implement graphically-oriented computer programs based on written requirements and specifications. 3. Research and utilize third-party frameworks and Application Programming Interfaces to aid the programmer in developing computer games. 4. Evaluate game designs for user interface issues. 5. Evaluate game designs for gender and age issues. 6. Write a game design document at least five pages long that includes industry-accepted sections on game play, user experience, sample graphics, and flow. Laboratory Objectives: 1. Design and implement correct algorithms for detecting the collision between two objects on screen. 2. Implement correct algorithms for simulating basic physical phenomenon: falling, bouncing, reflection, and collision. 3. Utilize object-oriented programming techniques (inheritance, extension, and the strategy pattern) to encapsulate game behavior. 4. Design and implement correct algorithms for directing on-screen animations, characters, and sounds in response to user input, such as keypresses and mouse clicks. 5. Design and implement correct algorithms for minimizing screen flicker and tearing. 6. Design and implement correct algorithms that utilize threads to permit concurrent on-screen actions. 7. Design and implement a complete 2D video game incorporating the following components: scoring, increasing difficulty levels, animation, sound effects, winnability (must be winnable), and user interaction. Methods of Evaluation Essay Examinations Objective Examinations Problem Solving Examinations Projects Reading Assignments 1. Read chapters from the assigned college-level text books. Each chapter explains a different technique for programming computer games. Be ready to answer some questions during the lecture. 2. Read online case studies of usability, programming techniques, and game design. Be prepared to discuss in class. Writing, Problem Solving or Performance 1. Design a simple video game using the techniques which we've discussed in class.Your game should be a two-dimensional, sprite-based, interactive game. The details of characters, layout, input, scoring, etc., are all up to you. You could design a brand-new game or describe a version or variation of some old favorite. 2. You should produce a program which involves both animation and user input. That is, there should be some part of the application which is moving or changing based on an animation loop (such as the ball in Pong) and some part which depends on user input (such as the paddles in Pong). You could have the user input directly control some shape on the screen, or you could have the user input do something like change colors or speeds of shapes in the animation. Other (Term projects, research papers, portfolios, etc.) Methods of Instruction Laboratory Lecture/Discussion Distance Learning Other materials and-or supplies required of students that contribute to the cost of the course.